package com.itheima.wisdomnext.service;

import com.itheima.wisdomnext.entity.Users;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface UserService {

    /**
     * 注册用户
     *
     * @param users 包含用户名、密码、邮箱等信息的用户注册数据传输对象
     * @return 注册结果信息
     */
    String registerUser(Users users);

    /**
     * 用户登录
     *
     * @param users 包含用户名和密码的用户登录数据传输对象
     * @return 返回 JWT 令牌和用户 ID
     */
    String loginUser(Users users);

    /**
     * 根据用户名加载用户详细信息（支持 Spring Security）
     *
     * @param username 用户名
     * @return 包含用户名、密码、角色等信息的用户详情
     */
    UserDetails loadUserByUsername(String username);

    void updateUserInfo(Users users);

    // 根据 userId 查询用户信息
    Users getUserById(int userId);

    // 根据 userId 查询用户信息
    List<Users> getUserByIdPost(int userId);

    // 更新头像
    String updateAvatar(int userId, MultipartFile avatar);

    // 查询用户关注的人
    List<Integer> getFollowedUserIds(int userId);

    List<Users> getAllUsers();
}
